package xginxim

import (
	"encoding/json"

	"gitee.com/xiaoyutab/xgotool/optional/xim"
	"gitee.com/xiaoyutab/xgotool/xgin"
)

// nsq队列-消息发送后的推送队列
//
//	xginxim.nsq.send.message	<xim.Message>
func nsq_send_message(p []byte) error {
	message := xim.Message{}
	if err := json.Unmarshal(p, &message); err != nil {
		return err
	}
	// 获取群信息
	chat, err := xim.GetChat(message.ChatId)
	if err != nil {
		return err
	}
	if chat.TypeId == 1 {
		// 如果是设备间通讯
		sendMessage(message.UserId, xgin.Resp().SuccessAny(message))
	} else if chat.TypeId == 2 {
		// 用户间通信通道
		// 获取成员信息
		_, user, err := xim.GetChatUser(message.ChatId, 0, 1)
		if err != nil {
			return err
		}
		sendMessage(user[0].UserId, xgin.Resp().SuccessAny(message))
	} else if chat.TypeId == 3 {
		// 群聊
		// 获取群成员信息
		_, user, err := xim.GetChatUser(message.ChatId, 0, -1)
		if err != nil {
			return err
		}
		ms := xgin.Resp().SuccessAny(message)
		for i := 0; i < len(user); i++ {
			sendMessage(user[i].UserId, ms)
		}
	}
	return nil
}
